//什么是错误?  错误是指可能出现问题的地方出现了问题  go中的错误也是一种类型，错误用内置的error类型表示
//什么是异常?  异常是指不应该出现问题的地方出现了问题
package main

import (
	"fmt"
	//"log"
	"os"
)

func main() {
	//	1.演示一个错误
	context, error := os.Open("./1.txt")
	if error != nil {
		//log.Fatal(error)   //方法1 调用log.Fatal
		fmt.Println(error)                        //方法2 自行打印这个错误
		if ins, ok := error.(*os.PathError); ok { //类型断言,调用PathError结构体中的方法
			fmt.Println(ins.Op)
			fmt.Println(ins.Path)
			fmt.Println(ins.Err)
		}
		return
	}
	fmt.Println(context.Name(), "成功打开文件")
}
